#!/bin/bash

# DataX旅游数据同步脚本
# 用于将MySQL中的旅游数据同步到HDFS

# 设置环境变量
export DATAX_HOME=/opt/module/datax
export PATH=$PATH:$DATAX_HOME/bin

# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 日志函数
log_info() {
    echo -e "${GREEN}[INFO]${NC} $1"
}

log_warn() {
    echo -e "${YELLOW}[WARN]${NC} $1"
}

log_error() {
    echo -e "${RED}[ERROR]${NC} $1"
}

# 检查DataX是否安装
check_datax() {
    if [ ! -d "$DATAX_HOME" ]; then
        log_error "DataX未安装或DATAX_HOME路径不正确: $DATAX_HOME"
        exit 1
    fi
    log_info "DataX安装路径: $DATAX_HOME"
}

# 检查配置文件是否存在
check_config() {
    local config_file=$1
    if [ ! -f "$config_file" ]; then
        log_error "配置文件不存在: $config_file"
        exit 1
    fi
    log_info "使用配置文件: $config_file"
}

# 执行DataX任务
run_datax_job() {
    local config_file=$1
    local job_name=$2
    
    log_info "开始执行DataX任务: $job_name"
    log_info "配置文件: $config_file"
    
    # 执行DataX任务
    python $DATAX_HOME/bin/datax.py $config_file
    
    if [ $? -eq 0 ]; then
        log_info "DataX任务执行成功: $job_name"
    else
        log_error "DataX任务执行失败: $job_name"
        return 1
    fi
}

# 主函数
main() {
    log_info "=== 旅游数据同步任务开始 ==="
    
    # 检查DataX安装
    check_datax
    
    # 获取脚本所在目录
    SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
    
    # 配置文件路径 - 使用合并后的完整配置
    CONFIG_COMPLETE="$SCRIPT_DIR/smart_tour_datax_complete.json"
    
    # 检查配置文件
    check_config "$CONFIG_COMPLETE"
    
    # 执行完整数据同步任务
    log_info "=== 执行完整旅游数据同步 ==="
    run_datax_job "$CONFIG_COMPLETE" "完整旅游数据同步"
    
    log_info "=== 旅游数据同步任务完成 ==="
}

# 显示帮助信息
show_help() {
    echo "旅游数据同步脚本使用说明:"
    echo ""
    echo "用法: $0 [选项]"
    echo ""
    echo "选项:"
    echo "  -h, --help     显示此帮助信息"
    echo "  -c, --complete 执行完整数据同步(默认)"
    echo ""
    echo "同步的表包括:"
    echo "  - user_info (用户信息)"
    echo "  - tour_product (旅游产品)"
    echo "  - order_info (订单信息)"
    echo "  - user_review (用户评价)"
    echo "  - supplier (供应商)"
    echo "  - recommendation_log (推荐记录)"
    echo "  - travel_guide (旅游攻略)"
    echo "  - travel_activity (旅游活动)"
    echo "  - user_favorite (用户收藏)"
    echo ""
    echo "示例:"
    echo "  $0             执行完整数据同步任务"
    echo "  $0 -c          执行完整数据同步任务"
    echo "  $0 -h          显示帮助信息"
    echo ""
}

# 解析命令行参数
case "$1" in
    -h|--help)
        show_help
        exit 0
        ;;
    -c|--complete|"")
        main
        ;;
    *)
        log_error "未知参数: $1"
        show_help
        exit 1
        ;;
esac 